package com.sparrow.rpc.callback;

/**
 * RpcCallback 接口定义了处理 RPC 响应的回调机制。
 * 它提供了在成功接收到响应时的处理方法，以及在出现错误时的默认处理方法。
 * 实现该接口的类可以根据具体需求来处理 RPC 调用的结果。
 *
 * @param <T> 响应数据的类型
 */
public interface RpcCallback<T> {

    /**
     * 当成功接收到 RPC 响应时调用此方法。
     * 实现类应在此方法中处理接收到的响应数据。
     *
     * @param t 接收到的响应数据
     */
    void onResponse(T t);

    /**
     * 当 RPC 调用过程中出现错误时调用此方法。
     * 此方法提供了一个默认实现，不做任何处理。
     * 实现类可以选择重写此方法来处理错误情况。
     *
     * @param t 表示错误信息的 Throwable 对象
     */
    default void onError(Throwable t) {
        // 默认不做任何处理，实现类可按需重写
    }
}